The present invention relates generally to the access and control of programs executing in one or more computers by remote terminals or computers, and more particularly to shared access and control of such programs by the remote terminals or computers.
In many computer user environments, such as a securities firm trading floor, it is necessary to provide at each operator location facilities to access information from or communicate with a number of separate information services (e.g. Quotron, Nasdaq, Reuters, Telerate). Formerly, it was necessary to provide at each operator location a separate data communications device for each information service to be accessed by the operator. Each data communications device, which may be a hardwired terminal or an appropriately programmed computer, has a keyboard, a display and control logic for controlling the functions of the device, including causing data received from the information service to be presented on the display and, if necessary, providing data entered at the keyboard to the information service. In this manner, the control logic of each data communications device serves as a video source for the information service with which the device is associated.
However, providing a separate data communications device at each operator location for each information service to be accessed by the operator has the problem in that the many such devices that are required occupy an excessively large amount of space at each operator location, and a separate set of communication lines from the information services to be accessed by the operators must be routed to each operator location.
A known solution to the foregoing problems is to use a video switching system to reduce the number of communication lines that are required from the information services and to reduce the number of video sources that are required to provide each operator with access to the information services.
A simplified illustrative example of a video switching system is shown in FIG. 1. Referring to FIG. 1, five operator locations 101-105 are each provided with a keyboard 106 and two display devices 107-108 to permit each operator to access as many as two of the three information services 109-111. The three information services 109-111 are respectively connected through communications lines 112-114 to three computers 115-117, which serve as the video sources for the information services. The video outputs 118-120 of the three video sources 115-117, respectively, are selectively connected to the displays 107-108 of each operator station 101-105 through a 3-by-10 switching matrix 121. Typically, each of the video outputs 118-120 of the video sources 115-117 provides a respective RS-170 video signal. The switching matrix 121 is controlled by a request handler computer 122, which receives input from each of the keyboards 106 at the operator stations 101-105. An operator may use the keyboard at his or her location to invoke a "dialog" mode with the request handler computer 122 in which the operator may use the keyboard to request the connection of a particular video source to one of the displays at his or her location. The operator may also use the keyboard to invoke a "passthrough" mode with the request handler computer 122 in which the operator's keyboard entries are provided to a particular video source for the purpose of either controlling the video source or providing data to the information service to which the particular video source is connected. The operator may use the keyboard at his or her operator location to invoke the passthrough mode of operation with the request handler computer 122 to allow keystrokes from that keyboard to be provided to any one of the video sources 115-117.
The passing of keystrokes from the keyboards 106 at the operator locations 101-105 to the video sources 115-117 by the request handler computer 122 operating in the passthrough mode is implemented through a bus 123 of the request handler computer 122 to which the video sources 115-117 are coupled through respective keyboard adapters 124-126. Each keyboard adapter, which is connected between the bus 123 and the keyboard input of the associated video source, serves to emulate the keyboard which is normally used with the computer serving as the video source in the illustrative example. Thus, each of the video sources 115-117 may be accessed and controlled from any of the remote operator locations 101-105 through the request handler computer 122 without any modification of the hardware or programs of the computer being used as the video source, other than the removal of its keyboard and display which are not used. Therefore, the access and control of the video sources 115-117 from the operator locations 101-105 are said to be "transparent" to the video source, since each video source receives keyboard inputs indistinguishable from those it would have received from its own keyboard if one were provided, and each video source provides a video output which is the same video output it would have provided to its own display if one were furnished.
Where the video source is a programmed computer, remote access and control of the video sources by means of the video switching system is accomplished without altering the program which is normally executed in the computer.
Since a given video source can process input from only one of the operator location keyboards at a time, the program of the request handler computer 122 provides for the arbitration among the operator locations seeking to provide input to any given video source at the same time. Normally the system is designed so that to a given operator entering input from the keyboard at his or her operator location, access to a given video source would appear to be contemporaneous with access to the same video source by one or more other operators at their respective operator locations.
The video switching system, of which a simplified illustrative example is shown in FIG. 1, provides for the remote access and control of multiple video sources to be shared by an arbitrary number of operator locations of the system. The access to and control of a particular video source through the video switching system can be limited exclusively for a time to a single operator location or can be shared among many operator locations contemporaneously. In addition, the video switching system permits some operator locations to view the video presentation provided by a shared video source and other operator locations to view the video presentations and control the shared video source in the manner described above.
Although the video switching system provides the advantages of reducing the amount of equipment required at each operator location and the number of communications lines which must be routed to each operator location, when compared to providing a separate video source for each information service to be accessed at each operator location, the video switching system has a number of significant drawbacks which makes it disadvantageous for modern computer user environments.
A video switching system is inherently costly because of the extensive overhead equipment, such as the switching matrix 121 and the request handler computer 122, which must be installed and continually maintained. Further, there is a substantial wiring cost associated with the installation of a video switching system in that each display at each operator location must be connected by a separate line to a central switching matrix. As system size grows, the video switching matrix must be expanded quadratically with system size. For example, if the number of operator positions and video sources are doubled, the size of the switching matrix quadrupled.
In addition, the video switching systems, which typically use 75-ohm coaxial cables to carry the video signal from a video source to the displays at the operator locations through the switching matrix, do not provide sufficient video bandwidth required by modern, high-resolution color computer displays. Consequently, such modern displays cannot be used in a video switching system without significant degradation in the quality of the video presentation at the operator locations. This latter drawback is becoming increasingly serious with the rising popularity of personal computers with modern, high-resolution displays as the video source specified or supplied by the information service providers. Moreover, the video switching system, which has a large number of hardware components, is subject to a relatively high rate of failures and is difficult to service and maintain.
Local area networks (LANs) are known and are used to provide distributed processing environments in which multiple computers attached to the LAN can share resources, such as printers and disk drives, and exchange and share data among computers which are part of the LAN or computers which are external to the LAN but connected to the LAN through gateway devices. Recently computers with large-screen displays or multiple-screen displays have been developed to be attached to LANs. Such computers have the capability of providing simultaneous multiple screen displays.
A computer on a LAN can access data in another computer on the LAN through its keyboard, provided that the accessing computer and the computer being accessed are each executing special programs designed for the purpose of enabling such access. Owing to the need for such special programs and the limited modes of data access provided thereby, the display of the accessing computer cannot present the screen presentation of another computer executing an arbitrary application program. As such, "transparent" access by one computer on a LAN to an arbitrary application program executing in another computer on the LAN is not available.
Similarly, given the need for such special programs, the accessing computer cannot control through its keyboard an arbitrary application program executing in another computer on the LAN. Accordingly, "transparent" control of one computer on the LAN by another computer on the LAN is not available.
Furthermore, shared access and control, where two or more computers on a LAN each display the screen presentation of another computer on the LAN or where two or more computers on a LAN each control through their respective keyboards and displays an application program being executed in another computer on the LAN are also not available.
A program called "NETmanager" is available from Brightwork Software which is used to allow a "help desk" computer on a LAN to access the screen and control the keyboard of another computer on a LAN where the operator of the other computer is experiencing hardware or software problems, provided that the application program of other computer is of a limited class. Using the NETmanager program, a technician operating the "help desk" computer can assist the operator of the other computer in diagnosing and solving his or her problems. The NETmanager software does not provide for either shared access or shared control of an arbitrary application program in a computer on a LAN by other computers on the LAN.
Accordingly, a need clearly exists for a system which provides for the remote shared access and shared control of one or more application programs in respective computers, hereinafter referred to as "server" computers, by a plurality of other computers, hereinafter referred to as "client" computers, and which avoids the above-described problems associated with the video switching system. Further, it is desirable to have such shared remote access and control be transparent to both the server computers and the client computers in that each server and each client can execute an arbitrary, unmodified application program while still having the capability of performing the shared access and shared control functions. Moreover, it is desirable to implement such a system for shared remote access and control using a LAN which has sufficient bandwidth to accommodate the modern display devices used in personal computers, as well as other features which are particularly suited for use with personal computers.
It would also be highly desirable to provide a LAN-based system for shared remote access and control of application programs in computers which can accommodate a wide variety of disparate computers.